package cn.jtfadmin.base.lang.common.domain.dto;

import cn.jtfadmin.base.lang.common.utils.TreeUtils;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

/**
 * antdv 树型数据<br/>
 * 使用位置，前端 树型下拉或树<br/>
 * 通过TreeUtils 构建
 *
 * @author jtf
 * @version 0.0.1
 * @see TreeUtils
 * @since 0.0.1
 */
@Getter
@Setter
public class AntdvTreeDataRDTO implements Serializable {



    /**
     * 值 唯一 树型下拉 默认根据此属性值进行筛选（其值在整个树范围内唯一）
     */
    protected String value;

    /**
     * key 唯一, 树控件标示值， 树型下拉标识唯一
     */
    protected String key;


    /**
     * title，树控件显示, 树型下拉显示的内容
     */
    protected String title;

    /**
     * selectable 是否可选
     */
    protected Boolean selectable;


    /**
     * checkable 当树为 checkable 时，设置独立节点是否展示 Checkbox
     */
    protected Boolean checkable;

    /**
     * 禁掉 checkbox
     */
    protected Boolean disableCheckbox;

    /**
     * 是否禁用
     */
    protected Boolean disabled;

    /**
     * 是否是叶子节点
     */
    protected Boolean isLeaf;
    /**
     * 子
     */
    protected List<AntdvTreeDataRDTO> children;

    /**
     * 无参构造
     */
    public AntdvTreeDataRDTO() {
    }

    /**
     * 构造函数
     * @param title title
     * @param value value
     * @param children children
     */
    public AntdvTreeDataRDTO(String title, String value, List<AntdvTreeDataRDTO> children) {
        this.title = title;
        this.value = value;
        this.key = this.value;
        this.children = children;
    }

    @Override
    public String toString() {
        return "AntdvTreeDataRDTO{" +
                "value='" + value + '\'' +
                ", key='" + key + '\'' +
                ", title='" + title + '\'' +
                ", selectable=" + selectable +
                ", checkable=" + checkable +
                ", disableCheckbox=" + disableCheckbox +
                ", disabled=" + disabled +
                ", isLeaf=" + isLeaf +
                '}';
    }


}
